/*
 * TMap Designer - A Thematic Map design software
 * Copyright (C) 2006 World Health Organization
 * http://www.who.int
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
package who.tmap.bo;

import java.awt.Color;
import java.awt.geom.Point2D;
import java.util.List;

import who.tmap.toolkit.shape.MapShape;

public interface Annotations extends BizObject {

	// Title
	void setTitleVisible( boolean visible );
	boolean isTitleVisible();
	
	void setTitleBackgroundTransparent( boolean backgroundTransparent );
	boolean isTitleBackgroundTransparent();
	
	void setTitle( String title );
	String getTitle();
	
	void setTitleStyle( TextStyle style );
	TextStyle getTitleStyle();	
	
	void setTitlePt( Point2D pt );
	Point2D getTitlePt();
	
	void setTitleColor( Color titleColor );
	Color getTitleColor();
	
	void setTitleEditedByUser( boolean titleEditedByUser );
	boolean isTitleEditedByUser();

	// Legend
	void setLegendVisible( boolean visible );
	boolean isLegendVisible();
	
	void setLegendStyle( TextStyle style );
	TextStyle getLegendStyle();	
	
	void setLegendBackgroundTransparent( boolean backgroundTransparent );
	boolean isLegendBackgroundTransparent();	
	
	void setLegendPt( Point2D pt );
	Point2D getLegendPt();
	
	void setLegendText( String legendText );
	String getLegendText();
	
	void setColorPatternLegend( List<String> colorPatternLegend );
	List<String> getColorPatternLegend();
	
	void setColorPatternRoundRangesBoundaries( boolean roundRangesBoundaries );
	boolean isColorPatternRoundRangesBoundaries();
	
	void setProportionalSymbolsRoundValues( boolean roundValues );
	boolean isProportionalSymbolsRoundValues();
	
	void setLegendColor( Color legendColor );
	Color getLegendColor();
	
	// Labels
	void setLabelsVisible( boolean visible );
	boolean isLabelsVisible();
	
	void setLabelsVisibleCondition( double dbl );
	double getLabelsVisibleCondition();
	
	void setLabelsVisibleIfDataExists( boolean visible );
	boolean isLabelsVisibleIfDataExists();
	
	void setLabelsStyle( TextStyle style );
	TextStyle getLabelsStyle();
	
	void setLabelsColor( Color labelsColor );
	Color getLabelsColor();
	
	List<MapShape> getGraphics();
	void setGraphics( List<MapShape> graphics );
	
	void setBackgroundColor( Color backgroundColor );
	Color getBackgroundColor(); 
	
	void setBaseMapColor( Color baseMapColor );
	Color getBaseMapColor();

	void setBaseMapLineWidth( double lineWidth );
	double getBaseMapLineWidth();
	
	void setLabelColumnName( String labelColumnName );
	String getLabelColumnName();
	
	// Add background image later ?
}
